define(["jquery", "bootstrap", "backend", "table", "form"], function ($, undefined, Backend, Table, Form) {
  var Controller = {
    index: function () {
      // 初始化表格参数配置
      Table.api.init({
        extend: {
          index_url: "dicts/nursequarterreport/index" + location.search,
          add_url: "dicts/nursequarterreport/add",
          edit_url: "dicts/nursequarterreport/edit",
          del_url: "dicts/nursequarterreport/del",
          multi_url: "dicts/nursequarterreport/multi",
          import_url: "dicts/nursequarterreport/import",
          table: "dicts_nursequarterreport",
        },
      });

      var table = $("#table");

      // 初始化表格
      table.bootstrapTable({
        url: $.fn.bootstrapTable.defaults.extend.index_url,
        pk: "id",
        sortName: "weigh",
        columns: [
          [
            { checkbox: true },
            { field: "id", title: __("Id"), sortable: true },
            { field: "name", title: __("Name"), operate: "LIKE" },
            { field: "remark", title: __("Remark"), operate: "LIKE" },
            { field: "weigh", title: __("Weigh"), operate: false },
            {
              field: "createtime",
              title: __("Createtime"),
              operate: "RANGE",
              addclass: "datetimerange",
              autocomplete: false,
              formatter: Table.api.formatter.datetime,
            },
            {
              field: "updatetime",
              title: __("Updatetime"),
              operate: "RANGE",
              addclass: "datetimerange",
              sortable: true,
              autocomplete: false,
              formatter: Table.api.formatter.datetime,
            },
            { field: "operate", title: __("Operate"), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate },
          ],
        ],
      });

      // 为表格绑定事件
      Table.api.bindevent(table);
    },
    add: function () {
      Controller.api.bindevent();
    },
    edit: function () {
      Controller.api.bindevent();
    },
    api: {
      bindevent: function () {
        Form.api.bindevent($("form[role=form]"));
      },
    },
  };
  return Controller;
});
